package com.sgb.kjwl.di.enterprise;

import com.sgb.kjwl.view.ui.fragment.enterprise.NeedChangeFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.IntellpropFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.MakeOverFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.ProfessionalQuoteFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.ProfessionalTeamFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.PsTeamDetailServiceQuoteFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.PsTeamDetailTalentFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.TeamIntelligenceFragment;
import com.sgb.kjwl.view.ui.fragment.enterprise.ServiceDetailDealedFragment;
import com.sgb.kjwl.viewmodel.enterprise.DealedCasesFragModel;
import com.sgb.kjwl.viewmodel.enterprise.IntellpropFragModel;
import com.sgb.kjwl.viewmodel.enterprise.MakeOverModel;
import com.sgb.kjwl.viewmodel.enterprise.NeedChangeModel;
import com.sgb.kjwl.viewmodel.enterprise.ProfessionalQuoteFrgModel;
import com.sgb.kjwl.viewmodel.enterprise.ProfessionalTeamModel;
import com.sgb.kjwl.viewmodel.enterprise.ServiceQuoteFragModel;
import com.sgb.kjwl.viewmodel.enterprise.TalentFragModel;
import com.sgb.kjwl.viewmodel.enterprise.TeamIntelligenceModel;
import com.swgk.core.base.di.Fragment;

import dagger.Module;
import dagger.Provides;

@Module
public class EnterpriseFragModule {

    private IntellpropFragment intellpropFragment;
    private MakeOverFragment makeOverFragment;
    private ProfessionalTeamFragment professionalTeamFragment;
    private PsTeamDetailTalentFragment psTeamDetailTalentFragment;
    private PsTeamDetailServiceQuoteFragment psTeamDetailServiceQuoteFragment;
    private TeamIntelligenceFragment teamIntelligenceFragment;
    private ProfessionalQuoteFragment professionalQuoteFragment;
    private NeedChangeFragment mNeedChangeFragment;

    public EnterpriseFragModule(TeamIntelligenceFragment teamIntelligenceFragment) {
        this.teamIntelligenceFragment = teamIntelligenceFragment;
    }

    private ServiceDetailDealedFragment serviceDetailDealedFragment;

    public EnterpriseFragModule(IntellpropFragment intellpropFragment) {
        this.intellpropFragment = intellpropFragment;
    }

    public EnterpriseFragModule(MakeOverFragment makeOverFragment) {
        this.makeOverFragment = makeOverFragment;
    }

    public EnterpriseFragModule(ProfessionalTeamFragment professionalTeamFragment) {
        this.professionalTeamFragment = professionalTeamFragment;
    }

    public EnterpriseFragModule(PsTeamDetailTalentFragment psTeamDetailTalentFragment) {
        this.psTeamDetailTalentFragment = psTeamDetailTalentFragment;
    }

    public EnterpriseFragModule(PsTeamDetailServiceQuoteFragment psTeamDetailServiceQuoteFragment) {
        this.psTeamDetailServiceQuoteFragment = psTeamDetailServiceQuoteFragment;
    }

    public EnterpriseFragModule(ServiceDetailDealedFragment serviceDetailDealedFragment) {
        this.serviceDetailDealedFragment = serviceDetailDealedFragment;
    }

    public EnterpriseFragModule(ProfessionalQuoteFragment professionalQuoteFragment) {
        this.professionalQuoteFragment = professionalQuoteFragment;
    }

    public EnterpriseFragModule(NeedChangeFragment mNeedChangeFragment) {
        this.mNeedChangeFragment = mNeedChangeFragment;
    }

    @Provides
    @Fragment
    IntellpropFragModel provideIntellpropFragModel() {
        return new IntellpropFragModel(intellpropFragment);
    }

    @Provides
    @Fragment
    MakeOverModel provideMakeOverModel() {
        return new MakeOverModel(makeOverFragment);
    }

    @Provides
    @Fragment
    ProfessionalTeamModel provideProfessionalTeamFragModel() {
        return new ProfessionalTeamModel(professionalTeamFragment);
    }

    @Provides
    @Fragment
    TalentFragModel provideTalentFragModel() {
        return new TalentFragModel(psTeamDetailTalentFragment);
    }

    @Provides
    @Fragment
    ServiceQuoteFragModel provideServiceQuoteFragModel() {
        return new ServiceQuoteFragModel(psTeamDetailServiceQuoteFragment);
    }

    @Provides
    @Fragment
    TeamIntelligenceModel provideTeamIntelligenceModel() {
        return new TeamIntelligenceModel(teamIntelligenceFragment);
    }

    @Provides
    @Fragment
    DealedCasesFragModel provideDealedCasesFragModel() {
        return new DealedCasesFragModel(serviceDetailDealedFragment);
    }

    @Provides
    @Fragment
    ProfessionalQuoteFrgModel professionalQuoteModel() {
        return new ProfessionalQuoteFrgModel(professionalQuoteFragment);
    }

    @Provides
    @Fragment
    NeedChangeModel needChangeModel() {
        return new NeedChangeModel(mNeedChangeFragment);
    }
}
